#ifndef _IFILE_H_
#define _IFILE_H_

interface IFile : public IBase
{
	std_method(LoadFile)(const TCHAR* pszLoadFile,
		unsigned long ulwDesiredAccess,
		unsigned long ulShareMode,
		unsigned long ulCreationDisposition,
		unsigned long ulFlagsAndAttributes) PURE;
	std_method(CloseFile)() PURE;
	std_method_(int64, GetFileSize)() PURE;
	std_method(ReadBuffer)(char* szBuffer, int64 ulReadFileLen, int64* ulReadSize) PURE;
	std_method(WriteBuffer)(char* szBuffer, int64 ulWriteSize) PURE;
};

// {978D055C-CF46-44C4-BE6C-E537C0E698C5}
_DEFINE_IID(IID_IFile, 
	0x978d055c, 0xcf46, 0x44c4, 0xbe, 0x6c, 0xe5, 0x37, 0xc0, 0xe6, 0x98, 0xc5);


#endif
